package mode.FlyweighMode11;

/**
 * 11 享元模式
 * 定义 ： 通过共享的方式高效的支持大量细粒度的对象，
 * 享元构造模式，是一种结构型设计模式，在减少对象的数量，以节省内存空间和提高性能。
 *
 * 主要解决：在有大量对象时，有可能会造成内存溢出，我们把其中共同的部分抽象出来，如果有相同的业务请求，直接返回在内存中已有的对象，避免重新创建。
 *
 * https://www.jb51.net/program/2914863ha.htm
 *
 *
 */

public class FlyweightPatternDemo {

    public static void main(String[] args) {

        PieceFactory factory = new PieceFactory();

        Piece black1 = factory.getPiece("black");
        black1.put(1, 1);

        Piece black2 = factory.getPiece("black");
        black2.put(2, 2);


        Piece white1 = factory.getPiece("white");
        white1.put(3, 3);


        Piece white2 = factory.getPiece("white");
        white2.put(4, 4);

    }

}
